﻿using System;
/*
 * 按要求编写一个控制台应用程序:
    定义一个动物类，里面有一个方法voice(),
 * */
namespace 第六题
{
    abstract class Animal
    {
        public abstract void voice();
    }
    //定义一个类Cat,实现voice方法;
    class Cat:Animal
    {
        public override void voice()
        {
            Console.WriteLine("喵!");
        }
       
    }
    //然后增加一种新的动物类型：Pig(猪)，实现voice()方法。
    class Pig : Animal 
    {
        public override void voice()
        {
            Console.WriteLine("hang!");
        }
    }
    //定义一个Dog类，实现voice方法
    class Dog : Animal
    {
        public override void voice()
        {
            Console.WriteLine("汪!");
        }
    }
    /*定义一个Store（宠物店）类的getInstance方法，该方法的返回值为动物类：
     * 如果传入的参数是字符串dog，则返回一个Dog对象；
        如果传入pig，则返回一个Pig对象；否则，返回一个Cat对象。
     */
    class Store 
    {
        public String name { get; set; }
        public Animal getInstance(String name)
        {
            if (name == "dog")
            {
                return new Dog();
            }
            if (name == "pig")
            {
                return new Pig();
            }
            else
            {
                return new Cat();
            }
            
        }

    }
    class Program
    {
        static void Main(string[] args)
        {
            Store s = new Store();
            s.name = Console.ReadLine();
            s.getInstance(s.name).voice();
            
        }
    }
}
